GtkIconViewAccessible: Don't access freed item
authorMarek Kasik <mkasik@redhat.com>
Tue, 4 Mar 2014 14:17:23 +0000 (15:17 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 5 Mar 2014 20:03:36 +0000 (21:03 +0100)
Don't get index from deleted GtkIconViewItem.
Remove the item before traversing list of items.

https://bugzilla.gnome.org/show_bug.cgi?id=701884

gtk/a11y/gtkiconviewaccessible.c

index 2673b19bd8a89d56b348a318fbe0d9975db3e211..82c50f931dc27270d469d3ccb90d64b6e314f84f 100644 (file)
@@ -1128,7 +1128,7 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
         {
           deleted_item = items;
         }
-      if (info->index != item->item->index)
+      else if (info->index != item->item->index)
         {
           if (tmp_list == NULL)
             tmp_list = items;
@@ -1138,7 +1138,6 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
 
       items = items->next;
     }
-  gtk_icon_view_accessible_traverse_items (view, tmp_list);
   if (deleted_item)
     {
       info = deleted_item->data;
@@ -1149,6 +1148,7 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
       g_object_unref (info->item);
       g_free (info);
     }
+  gtk_icon_view_accessible_traverse_items (view, tmp_list);
 
   return;
 }